package com.katze.boot.file.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.katze.boot.file.dao.FileRepositoryMapper;
import com.katze.boot.file.entity.FileRepositoryEntity;
import com.katze.boot.file.entity.FileSystemConstant;
import com.katze.boot.file.service.FileRepositoryService;
import com.katze.common.env.AppEnvironment;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;


/**
* 说  明： 服务类
* 作  者：admin
* 日  期：2023-12-07
*/
@Service
public class FileRepositoryServiceImpl extends ServiceImpl<FileRepositoryMapper, FileRepositoryEntity> implements FileRepositoryService {

    @PostConstruct
    public void init() {
        FileRepositoryEntity entity = getDefaultFileRepository();
        if (entity == null) {
            entity = new FileRepositoryEntity();
            entity.setId(FileSystemConstant.Repository.DEFAULT_REPOSITORY_ID);
            entity.setName("文件仓");
            entity.setTempPath(AppEnvironment.TEMP_DIR.getValue());
            save(entity);
        }
    }

    @Override
    public FileRepositoryEntity getDefaultFileRepository() {
        return getById(FileSystemConstant.Repository.DEFAULT_REPOSITORY_ID);
    }

    @Override
    public boolean saveOrUpdate(FileRepositoryEntity repository) {
        if (StringUtils.isBlank(repository.getId())) {
            repository.setId(FileSystemConstant.Repository.DEFAULT_REPOSITORY_ID);
            save(repository);
        } else {
            updateById(repository);
        }
        return true;
    }
}
